
// buffer数据类型的使用

const buf = Buffer.alloc(10);  // 创建大小为10的buff对象, 默认使用0进行填充
const buf2 = Buffer.from('Hello');
const buf3 = Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f]); // 内容为hello构成的16进制数组 Buffer 对象

console.log('buf2输出字符串:', buf2.toString())
console.log('buf2输出十六进制的字符串:', buf2.toString('hex'))

// 转换为数组输出
console.log(Array.from(buf2))  // [ 72, 101, 108, 108, 111 ]


console.log(buf3.toString('base64'))  // 转化为base64格式 aGVsbG8=

// 写入数据
console.log('写入buf前的数据:', buf.toString())

buf.write('World')
buf.write('!', 5)
console.log('写入buf后的数据:', buf.toString())

// 合并多个Buffer
const buf4 = Buffer.from('hello')
const buf5 = Buffer.from('world')
console.log(Buffer.concat([buf4, buf5]).toString())  // concat使用数组

// 截取
let part = buf4.subarray(2)
console.log('截取之后的数据:', part.toString())
